package top.hisoft.pattern.creational.simplefactory.farm.fruits;

import top.hisoft.pattern.creational.simplefactory.farm.Fruit;

/**
 * 具体水果 - 苹果。
 * <p>
 * {@link Apple} 类是水果的一种，实现了 {@link Fruit} 接口所声明的所有方法。
 * 但有于苹果是多年生植物，因此，比通常的水果多出一个 <i>treeAge</i> 属性,描述苹果树的年龄。
 * </p>
 *
 * @author sky
 */
public class Apple implements Fruit {

    /**
     * 苹果树树龄
     */
    private int treeAge;

    /**
     * 生长
     */
    @Override
    public void grow() {
        System.out.println("Apple is growing.");
    }

    /**
     * 收获
     */
    @Override
    public void harvest() {
        System.out.println("Apple has been harvested.");
    }

    /**
     * 种植
     */
    @Override
    public void plant() {
        System.out.println("Apple  has been planted.");
    }

    /**
     * 树龄取值方法
     *
     * @return
     */
    public int getTreeAge() {
        return treeAge;
    }

    /**
     * 树龄的赋值方法
     *
     * @param treeAge
     */
    public void setTreeAge(int treeAge) {
        this.treeAge = treeAge;
    }
}
